package io.zhile.research.intellij.ier.helper;

import com.intellij.openapi.application.PathManager;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.util.io.FileUtil;

import java.io.File;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;

public class BrokenPlugins {

    private static final Logger LOG = Logger.getInstance(BrokenPlugins.class);

    /**
     * 查看有无 brokenPlugins.json文件,
     * 没有这个文件则结束,
     * 有这个文件. 则把这个文件内容 改成空数组
     * <p>
     * 推测:
     * 根据文件名 推测这个是记录损坏不可用的插件列表的,  之所以清空这个是为了防止idea把本插件设置成不可用, 但是最好的做法是值删除本插件即可
     */
    public static void fix() {
        Path brokenPluginsPath = Paths.get(PathManager.getPluginsPath(), "brokenPlugins.json");
        File brokenPluginsFile = brokenPluginsPath.toFile();
        //文件不存在, 或者文件存
        if (!brokenPluginsFile.exists()) {
            return;
        }

        try {
            FileUtil.writeToFile(brokenPluginsFile, "[]");
        } catch (IOException e) {
            LOG.warn("Set broken plugins failed", e);
        }
    }
}
